//
//  UIControl+XYAdd.h
//  PeiJue
//
//  Created by lxy on 2017/9/28.
//  Copyright © 2017年 lixiya. All rights reserved.
//

#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN

@interface UIControl (XYAdd)

/**
 *  移除所有事件
 */
- (void)xy_removeAllTargets;


/**
 *   给控件绑定一个新的事件或者覆盖一个原有的事件，每次绑定前先移除相同目标对象下相同行为的事件，如果利用系统自带的添加事件，相同目标对象相同行为的事件会重复添加
 *
 *  @param target        目标对象
 *  @param action        方法名
 *  @param controlEvents 事件行为名称
 */
-(void)xy_setTarget:(nullable id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents;



/**
 *  给控件绑定一个新的事件(不会去重)
 *
 *  @param controlEvents 事件行为名称
 *  @param block         回调方法块
 */
- (void)xy_addBlockForControlEvents:(UIControlEvents)controlEvents block:(void (^)(id sender))block;



/**
 *  给控件绑定一个新的事件或者覆盖一个原有的事件(会去重)
 *
 *  @param controlEvents 事件行为名称
 *  @param block         回调方法块
 */
- (void)xy_setBlockForControlEvents:(UIControlEvents)controlEvents block:(void (^)(id sender))block;


/**
 *  移除指定事件行为的事件
 *
 *  @param controlEvents 事件行为名称
 */
- (void)xy_removeAllBlocksForControlEvents:(UIControlEvents)controlEvents;

@end
NS_ASSUME_NONNULL_END
